# 读取打开的cad文件，并将其中的三维多段线顶点坐标及高程导出到不同的txt文档中
#仅在cad2016上运行通过，cad2008无接口，数据获取失败

# 导入依赖包pyautocad,目前pip中为0.2.0版
from pyautocad import Autocad, APoint

# 链接cad程序，并打印当前操作的cad文件名
acad = Autocad(create_if_not_exists=True)
acad.prompt("Hello, Autocad from Python\n")
print(acad.doc.Name)

# 为txt文档预先编号
j = 0

# 遍历cad对象, 并打印其名称
for obj in acad.iter_objects():
    print(obj.ObjectName)
    j = j + 1
    #新建txt文档，顺序编号
    with open(str(j) + 'plcoords.txt', 'w') as f:
        # 如果是3d多段线，执行遍历坐标操作
        if obj.EntityName == 'AcDb3dPolyline':
            vertices = obj.Coordinates
            i = 0
            for vertex in vertices:
                # 坐标数值三个一组，用逗号分开，换行输出下一组
                i = i + 1
                if i < 3:
                    f.write(str(vertex) + ',')
                else:
                    f.write(str(vertex) + '\n')
                    i = 0

print('\nCoordinates written to plcoords.txt.')
